home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / game / shoot / athrust.lha / AmigaThrust / src / gr_drv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-09-05  |  3.2 KB  |  110 lines

  1.  
  2. /* Written by Peter Ekberg, peda@lysator.liu.se */
  3. /* Amiga extensions by Frank Wille, frank@phoenix.owl.de */
  4.  
  5. #ifndef GR_DRV_H
  6. #define GR_DRV_H
  7.  
  8. #ifdef __STDC__
  9.  
  10. #if defined(AMIGA) && defined(__VBCC__)
  11. #ifdef __PPC__
  12. extern unsigned char *gfxbuf;
  13. void _putpixel(__reg("r3")int, __reg("r4")int, __reg("r5")unsigned char,
  14.                __reg("r6")unsigned char *) =
  15.         "\tmulli\t4,4,320\n"
  16.         "\tadd\t6,6,3\n"
  17.         "\tstbx\t5,6,4";
  18. #define putpixel(x,y,c) _putpixel(x,y,c,gfxbuf)
  19.  
  20. void _putarea(__reg("r3")unsigned char *, __reg("r4")int, __reg("r5")int,
  21.               __reg("r6")int, __reg("r7")int, __reg("r8")int,
  22.               __reg("r9")int, __reg("r10")int, __reg("r11")unsigned char *) =
  23.         "\tmulli\t10,10,320\n"
  24.         "\tadd\t3,3,4\n"
  25.         "\tadd\t4,11,9\n"
  26.         "\tadd\t4,4,10\n"
  27.         "\tmullw\t5,5,8\n"
  28.         "\tsubi\t4,4,1\n"
  29.         "\tsub\t8,8,6\n"
  30.         "\tli\t9,320\n"
  31.         "\tsub\t9,9,6\n"
  32.         "\tadd\t3,3,5\n"
  33.         "\tsubi\t3,3,1\n"
  34.         "\tmtctr\t6\n"
  35.         "\tlbzu\t5,1(3)\n"
  36.         "\tstbu\t5,1(4)\n"
  37.         "\tbdnz\t$-8\n"
  38.         "\tsubic.\t7,7,1\n"
  39.         "\tadd\t3,3,8\n"
  40.         "\tadd\t4,4,9\n"
  41.         "\tbne\t$-28";
  42. #define putarea(src,sx,sy,w,h,bpr,dx,dy) _putarea(src,sx,sy,w,h,bpr,dx,dy,gfxbuf)
  43.  
  44. #else /* M68k */
  45. extern unsigned char **ytab;
  46. void _putpixel(__reg("d0")int, __reg("d1")int, __reg("d2")unsigned char,
  47.                __reg("a0")unsigned char **) =
  48.         "\tmove.l\t(a0,d1.l*4),a0\n"
  49.         "\tmove.b\td2,(a0,d0.l)";
  50. #define putpixel(x,y,c) _putpixel(x,y,c,ytab)
  51.  
  52. void _putarea(__reg("a0")unsigned char *, __reg("d0")int, __reg("d1")int,
  53.               __reg("d2")int, __reg("d3")int, __reg("d4")int,
  54.               __reg("a1")char *, __reg("a2")char *,
  55.               __reg("a3")unsigned char **) =
  56.         "\tmove.l\t(a3,a2.l*4),a2\n"
  57.         "\tmulu\td4,d1\n"
  58.         "\tadd.l\ta2,a1\n"
  59.         "\tadd.l\td1,d0\n"
  60.         "\tadd.l\td0,a0\n"
  61.         "\tsub.l\td2,d4\n"
  62.         "\tmove.w\t#320,a2\n"
  63.         "\tsub.l\td2,a2\n"
  64.         "\tsubq.w\t#1,d3\n"
  65.         "\tmoveq\t#3,d1\n"
  66.         "\tand.w\td2,d1\n"
  67.         "\tbeq.b\t*+20\n"
  68.         "\tsubq.w\t#1,d2\n"
  69.         "\tmove.w\td2,d0\n"
  70.         "\tmove.b\t(a0)+,(a1)+\n"
  71.         "\tdbf\td0,*-4\n"
  72.         "\tadd.l\td4,a0\n"
  73.         "\tadd.l\ta2,a1\n"
  74.         "\tdbf\td3,*-14\n"
  75.         "\tbra.b\t*+20\n"
  76.         "\tlsr.w\t#2,d2\n"
  77.         "\tsubq.w\t#1,d2\n"
  78.         "\tmove.w\td2,d0\n"
  79.         "\tmove.l\t(a0)+,(a1)+\n"
  80.         "\tdbf\td0,*-4\n"
  81.         "\tadd.l\td4,a0\n"
  82.         "\tadd.l\ta2,a1\n"
  83.         "\tdbf\td3,*-14";
  84. #define putarea(src,sx,sy,w,h,bpr,dx,dy) _putarea(src,sx,sy,w,h,bpr,(char *)(dx),(char *)(dy),ytab)
  85. #endif
  86.  
  87. #else
  88. void putpixel(int x, int y, unsigned char color);
  89. void putarea(unsigned char *source,
  90.                int x, int y, int width, int height, int bytesperline,
  91.                int destx, int desty);
  92. #endif
  93.  
  94. void clearscr(void);
  95. void syncscreen(void);
  96. void displayscreen(void);
  97. void fade_in(void);
  98. void fade_out(void);
  99. void fadepalette(int first, int last,
  100.          unsigned char *RGBtable,
  101.          int fade, int flag);
  102. void graphics_preinit(void);
  103. int graphicsinit(int argc, char **argv);
  104. int graphicsclose(void);
  105. char *graphicsname(void);
  106.  
  107. #endif
  108.  
  109. #endif
  110.